1. Field of the Invention
The present invention generally relates to computer-implemented systems and methods for encoding, compressing, and decoding images.
2. Description of Related Art
Image compression techniques are widely used to store images in digital form in computers, and to transmit the images over networks such as the Internet. Image compression techniques utilize the principle that images contain a great deal of redundant data. By reducing the redundancy, image compression processes achieve a smaller file size, which can be very useful. For example, a small file size reduces the storage requirements for the image. Also, smaller files transfer more quickly over a network.
Over time, standards have evolved for image compression and file format storage. One particular standard commonly referred to as JPEG (which is an acronym for Joint Photographic Experts Group) is widely used to transfer still images over the Internet. This JPEG standard specifies a type of lossy data compression that does not exactly reproduce the original image but provides acceptable image quality. For example, the reduction in image quality may be barely perceptible, or even if perceptible, the smaller file size compensates for the reduced image quality for most uses. As part of the JPEG standard, a quality factor can be chosen when the image is compressed, which determines how much compression versus how much loss in image detail is desired. Although some types of images can be compressed with little loss, in many instances the greater the amount of compression, the greater the corresponding loss of image quality.
To compress an image according to the JPEG standard, the image is first divided up into 8×8 patches, each patch containing 64 pixels. Based upon the pixel values in this patch (typically a red value, a green value, and a blue value are associated with each pixel), certain values are calculated using basis functions predetermined by the JPEG standard. These calculated values then represent the image. To reconstruct the image, the calculated values are decoded using the predetermined basis functions to recreate the image.
JPEG 2000 is new standard proposed by JPEG that uses a wavelet approach to more accurately encode an image. In the wavelet approach, a large patch (possibly the entire image at the top level) is encoded, then the patch is processed which includes subdividing the large patch into smaller patches. The smaller, subdivided patches are then encoded, and these patches are re-subdivided and encoded. This process is repeated—subdividing and encoding progressively smaller patches—until a predetermined patch size (or other criteria), has been met. To decode an image encoded according to the wavelet approach, each of the encoded patches is sequentially decoded and displayed.
Even with a great deal of compression, JPEG files are large. It would be an advantage to provide a system that can significantly reduce the size of compressed files while retaining high image quality, thereby occupying less storage space, and reducing transmission time.